/**
 * 公告相关API接口
 * @author 王勇程 <laughskydragon@qq.com>
 */

import request from '@/utils/request'

/**
 * 获取公告列表
 * @param {Object} data 请求参数
 * @param {Number} data.list_rows 每页数量，可选参数（OneBase自动分页）
 * @param {Number} data.type 公告类型：1系统公告，2活动公告，3维护公告
 * @returns {Promise}
 */
export function getAnnouncementList(data = {}) {
  return request({
    url: '/announcement/getAnnouncementList',
    method: 'post',
    data
  })
}

/**
 * 获取公告详情
 * @param {Object} data 请求参数
 * @param {Number} data.id 公告ID
 * @returns {Promise}
 */
export function getAnnouncementInfo(data) {
  return request({
    url: '/announcement/getAnnouncementInfo',
    method: 'post',
    data
  })
}

/**
 * 获取最新公告
 * @param {Object} data 请求参数
 * @param {Number} data.list_rows 数量限制，默认1
 * @returns {Promise}
 */
export function getLatestAnnouncement(data = {}) {
  return request({
    url: '/announcement/getLatestAnnouncement',
    method: 'post',
    data
  })
}

/**
 * 标记公告为已读
 * @param {Object} data 请求参数
 * @param {Number} data.id 公告ID
 * @returns {Promise}
 */
export function markAnnouncementRead(data) {
  return request({
    url: '/announcement/markAsRead',
    method: 'post',
    data
  })
}

/**
 * 获取未读公告数量
 * @param {Object} data 请求参数
 * @returns {Promise}
 */
export function getUnreadCount(data = {}) {
  return request({
    url: '/announcement/getUnreadCount',
    method: 'post',
    data
  })
}

/**
 * 获取置顶公告
 * @param {Object} data 请求参数
 * @param {Number} data.list_rows 数量限制，默认3
 * @returns {Promise}
 */
export function getTopAnnouncements(data = {}) {
  return request({
    url: '/announcement/getTopAnnouncements',
    method: 'post',
    data
  })
}

export default {
  getAnnouncementList,
  getAnnouncementInfo,
  getLatestAnnouncement,
  markAnnouncementRead,
  getUnreadCount,
  getTopAnnouncements
}